/**
 *Vue Router 是Vue.js官方的路由管理器。
 *它和 Vue.js 的核心深度集成，让构建单页面应用变得易如反掌。
 *包含的功能有：
 *嵌套的路由/视图表；模块化的、基于组件的路由配置；
 *路由参数、查询、通配符；
 *基于 Vue.js 过渡系统的视图过渡效果；
 *细粒度的导航控制；
 *带有自动激活的 CSS class 的链接；
 *HTML5 历史模式或 hash 模式，在 IE9 中自动降级；
 *自定义的滚动条行为。
 */
import Vue from 'vue';
import Router from 'vue-router';

/* 博客端布局文件 */
import foreLayout from '../layout/foreLayout';
/* 管理端布局文件 */
import Layout from '../layout/Layout';

Vue.use(Router);

/**
 * 定义固定路由
 * 每个路由应该映射一个组件。
 * 其中component可以是通过Vue.extent()创建的组件构造器
 * 或者是一个组件配置对象
 */
export const constantRouterMap = [
  {
    /* 404界面 */
    path: '/404',
    component: () => import('@/views/features/404'),
    hidden: true
  },
  {
    /* 401(权限不足)界面 */
    path: '/401',
    component: () => import('@/views/features/401'),
    hidden: true
  },
  {
    /* 重定向界面 */
    path: '/redirect',
    component: Layout,
    hidden: true,
    children: [
      {
        /**
         * 此处的:path是一个动态路径参数，以冒号开头
         */
        path: '/redirect/:path*',
        component: () => import('@/views/features/redirect')
      }
    ]
  },
  {
    /* 博客首页 */
    path: '/',
    component: foreLayout,
    redirect: 'posts',
    children: [
      {
        path: 'posts',
        component: () => import('@/views/fore/home'),
        name: '导航',
        meta: { title: '导航', index: 0 }
      },
      {
        path: 'all',
        component: () => import('@/views/fore/essay/index'),
        name: '文章列表',
        meta: { title: '文章列表', index: 1 }
      },
      {
        path: 'works',
        component: () => import('@/views/fore/works/index'),
        name: '项目列表',
        meta: { title: '项目列表', index: 2 }
      },
      {
        path: 'about',
        component: () => import('@/views/fore/about/index'),
        name: '关于我们',
        meta: { title: '关于我们', index: 3 }
      }
    ]
  },
  {
    /* 后台登录界面 */
    path: '/admin/login',
    meta: { title: '后台登录', noCache: true },
    component: () => import('@/views/system/login'),
    hidden: true
  },
  {
    /* 后台首页 */
    path: '/admin',
    component: Layout,
    redirect: 'dashboard',
    children: [
      {
        path: 'dashboard',
        component: () => import('@/views/system/home'),
        name: '首页',
        meta: { title: '首页', icon: 'index', noCache: true, affix: true }
      }
    ]
  },
  {
    /* 后台个人中心 */
    path: '/user',
    component: Layout,
    hidden: true,
    redirect: 'noredirect',
    children: [
      {
        path: 'center',
        component: () => import('@/views/system/user/center'),
        name: '个人中心',
        meta: { title: '个人中心', icon: 'user' }
      }
    ]
  }
];

export default new Router({
  mode: 'history',
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRouterMap
});
